package com.funny.learning.english.model;

import java.io.Serializable;

import org.json.JSONObject;

public class CourseEntity implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	// hl: "en",
	// iid: 3,
	// level1: {
	// content:
	// "<div>Kh&oacute;a học cung cấp cho bạn 600 từ cần thiết nhất để c&oacute; thể đật được điểm tối đa trong kỳ thi Toeic</div>",
	// name: "Beginer",
	// price: 1000,
	// trial_learning: 200
	// },
	// level2: {
	// content:
	// "<div>Kh&oacute;a học cung cấp cho bạn 600 từ cần thiết nhất để c&oacute; thể đật được điểm tối đa trong kỳ thi Toeic</div>",
	// name: "imediate",
	// price: 1000,
	// trial_learning: 100
	// },
	// level3: {
	// content:
	// "<div>Kh&oacute;a học cung cấp cho bạn 600 từ cần thiết nhất để c&oacute; thể đật được điểm tối đa trong kỳ thi Toeic</div>",
	// name: "advanted",
	// price: 1000,
	// trial_learning: 100
	// },
	// name: "600 ESSENTIAL WORDS FOR TOEIC",
	// url: "",
	// id: "547ef2bc78a23cfb3837f8ea"

	private String hl;
	private int iid;
	private String name;
	private String url;
	private String id;
	private Level level1;
	private Level level2;
	private Level level3;
	private String type;
	
	private boolean isCheck = false;

	public CourseEntity(JSONObject jsonObject) {
		hl = jsonObject.optString("hl", "");
		iid = jsonObject.optInt("", 0);
		name = jsonObject.optString("name", "");
		url = jsonObject.optString("url", "");
		id = jsonObject.optString("id", "");
		
		type = jsonObject.optString("type", "");
		
		if(type.equals("onelevel")){
			JSONObject jsoObject1 = jsonObject.optJSONObject("level1");
			level1 =  new Level(jsoObject1);
		}else if(type.equals("twolevel")){
			JSONObject jsoObject1 = jsonObject.optJSONObject("level1");
			level1 =  new Level(jsoObject1);
			
			JSONObject jsoObject2 = jsonObject.optJSONObject("level2");
			level2 =  new Level(jsoObject2);
		}else if(type.equals("threelevel")){
			JSONObject jsoObject1 = jsonObject.optJSONObject("level1");
			level1 =  new Level(jsoObject1);
			
			JSONObject jsoObject2 = jsonObject.optJSONObject("level2");
			level2 =  new Level(jsoObject2);
			
			JSONObject jsoObject3 = jsonObject.optJSONObject("level3");
			level3 =  new Level(jsoObject3);
		}
	}

	public CourseEntity(String hl, int iid, String name, String url, String id,
			Level level1, Level level2, Level level3) {
		this.hl = hl;
		this.iid = iid;
		this.name = name;
		this.url = url;
		this.id = id;
		this.level1 = level1;
		this.level2 = level2;
		this.level3 = level3;
	}
	
	

	public boolean isCheck() {
		return isCheck;
	}

	public void setCheck(boolean isCheck) {
		this.isCheck = isCheck;
	}

	public String getHl() {
		return hl;
	}

	public void setHl(String hl) {
		this.hl = hl;
	}

	public int getIid() {
		return iid;
	}

	public void setIid(int iid) {
		this.iid = iid;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getUrl() {
		return url;
	}

	public void setUrl(String url) {
		this.url = url;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public Level getLevel1() {
		return level1;
	}

	public void setLevel1(Level level1) {
		this.level1 = level1;
	}

	public Level getLevel2() {
		return level2;
	}

	public void setLevel2(Level level2) {
		this.level2 = level2;
	}

	public Level getLevel3() {
		return level3;
	}

	public void setLevel3(Level level3) {
		this.level3 = level3;
	}

	public static class Level {
		private String content;
		private String name;
		private int price;
		private int trial_learning;

		public Level() {
		}

		public Level(JSONObject jsonObject) {
			content = jsonObject.optString("content", "");
			name = jsonObject.optString("name", "");
			price = jsonObject.optInt("price", 0);
			trial_learning = jsonObject.optInt("trial_learning", 0);
		}

		public Level(String content, String name, int price, int trial_learning) {

			this.content = content;
			this.name = name;
			this.price = price;
			this.trial_learning = trial_learning;
		}

		public String getContent() {
			return content;
		}

		public void setContent(String content) {
			this.content = content;
		}

		public String getName() {
			return name;
		}

		public void setName(String name) {
			this.name = name;
		}

		public int getPrice() {
			return price;
		}

		public void setPrice(int price) {
			this.price = price;
		}

		public int getTrial_learning() {
			return trial_learning;
		}

		public void setTrial_learning(int trial_learning) {
			this.trial_learning = trial_learning;
		}

		@Override
		public String toString() {
			return "Level [content=" + content + ", name=" + name + ", price="
					+ price + ", trial_learning=" + trial_learning + "]";
		}

	}

	@Override
	public String toString() {
		return "CourseEntity [hl=" + hl + ", iid=" + iid + ", name=" + name
				+ ", url=" + url + ", id=" + id + ", level1=" + level1
				+ ", level2=" + level2 + ", level3=" + level3 + "]";
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

}
